32-on-64: Fix an one-off error in compat_addr_ok().
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Fri, 26 Jan 2007 13:36:52 +0000 (13:36 +0000)
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Fri, 26 Jan 2007 13:36:52 +0000 (13:36 +0000)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/include/asm-x86/x86_64/uaccess.h

index 565a33c81dc754e1a0c3cd08a6743556adca46a9..5c55b5beb919c0d1d1d1cbf88cfeb821a5bef47b 100644 (file)
@@ -20,7 +20,8 @@
 #define __compat_addr_ok(addr) \
     ((unsigned long)(addr) < HYPERVISOR_COMPAT_VIRT_START(current->domain))
 
-#define compat_access_ok(addr, size) __compat_addr_ok((addr) + (size))
+#define compat_access_ok(addr, size) \
+    __compat_addr_ok((unsigned long)(addr) + ((size) ? (size) - 1 : 0))
 
 #define compat_array_access_ok(addr,count,size) \
     (likely((count) < (~0U / (size))) && \